package com.xian.d7_map_traversal;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 根据键值对遍历
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String, Integer> maps = new HashMap<>();
        //添加元素：无序、不重复、无索引
        maps.put("iphoneX", 10);
        maps.put("娃娃", 31);
        maps.put("iphoneX", 100);  // Map集合后面重复的键对应的元素会覆盖前面重复的整个元素!
        maps.put("huawei", 1000);
        maps.put("生活用品", 10);
        maps.put("手表", 10);
        //{huawei = 1000，手表 = 10，生活用品 = 10，iphoneX = 100，娃娃 = 31}
        System.out.println(maps);

        /**
         * maps = {huawei=1000，手表=10，生活用品=10，iphoneX=100，娃娃=30}
         *
         * 使用foreach遍历map集合.发现Nap集合的键值对元素直接是没有类型的。所以不可以直接foreach遍历集合。
         *
         * 可以通过调用Hap的方法entrySet把Hap集合转换成Set集合形式
         *
         * Set<Nap.Entry<String,Integer>> entries = [ (huawei=1000)，(手表=18)，(生活用品=1日)，(iphoneX-100)，(娃娃=30) ]
         *
         * 此时可以使用foreach遍历
         */

        //1、把Hap集合转换成Set集合
        Set<Map.Entry<String, Integer>> entries = maps.entrySet();
        System.out.println(entries);

        //2、开始遍历
        for (Map.Entry<String, Integer> entry : entries) {
//            System.out.println(entry);
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + ":" + value);
        }

    }
}
